package com.turing.post.account.util;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 联机圈存明细
 * 
 * @author kangzhe
 * 
 */
@SuppressWarnings("serial")
@Entity
@Table(name = "ONLINELOADDETAIL")
public class OnlineLoadDetail implements Serializable {

	/**
	 * 0 –圈存
	 */
	public final static String OnlineLoad_TranType_Deposit = "0";

	/**
	 * 1 –圈提
	 */
	public final static String OnlineLoad_TranType_Take = "1";

	/**
	 * 0-初始化
	 */
	public final static String OnlineLoad_Status_Init = "0";

	/**
	 * 1-初始化失败
	 */
	public final static String OnlineLoad_Status_InitFail = "1";

	/**
	 * 2-等待圈存
	 */
	public final static String OnlineLoad_Status_WaitLoad = "2";

	/**
	 * 3-圈存成功
	 */
	public final static String OnlineLoad_Status_LoadSuccess = "3";

	/**
	 * 4-圈存失败
	 */
	public final static String OnlineLoad_Status_LoadFail = "4";

	/**
	 * 5-调整失败
	 */
	public final static String OnlineLoad_Status_AdjustSuccess = "5";

	/**
	 * 6-调整成功
	 */
	public final static String OnlineLoad_Status_AdjustFail = "6";

	/**
	 * 联机转账明细流水号
	 */
	private String loadSeqNo;

	@Id
	@Column(name = "LOADSEQNO", nullable = false)
	public String getLoadSeqNo() {
		return loadSeqNo;
	}

	public void setLoadSeqNo(String loadSeqNo) {
		this.loadSeqNo = loadSeqNo;
	}

	/**
	 * 发卡商号
	 */
	private String issueCompanyNo;

	@Column(name = "ISSUECOMPANYNO", nullable = false)
	public String getIssueCompanyNo() {
		return issueCompanyNo;
	}

	public void setIssueCompanyNo(String issueCompanyNo) {
		this.issueCompanyNo = issueCompanyNo;
	}

	/**
	 * 销售机构号
	 */
	private String saleBranchNo;

	@Column(name = "SALEBRANCHNO", nullable = false)
	public String getSaleBranchNo() {
		return saleBranchNo;
	}

	public void setSaleBranchNo(String saleBranchNo) {
		this.saleBranchNo = saleBranchNo;
	}

	/**
	 * 账务日期
	 */
	private Date tranDate;

	@Column(name = "TRANDATE", nullable = false)
	public Date getTranDate() {
		return tranDate;
	}

	public void setTranDate(Date tranDate) {
		this.tranDate = tranDate;
	}

	/**
	 * 转账时间
	 */
	private Date tranTime;

	@Column(name = "TRANTIME", nullable = false)
	public Date getTranTime() {
		return tranTime;
	}

	public void setTranTime(Date tranTime) {
		this.tranTime = tranTime;
	}

	/**
	 * ATS号
	 */
	private String ats;

	@Column(name = "ATS", nullable = false)
	public String getAts() {
		return ats;
	}

	public void setAts(String ats) {
		this.ats = ats;
	}

	/**
	 * 应用序列号
	 */
	private BigInteger appSeqNo;

	@Column(name = "APPSEQNO", nullable = false)
	public BigInteger getAppSeqNo() {
		return appSeqNo;
	}

	public void setAppSeqNo(BigInteger appSeqNo) {
		this.appSeqNo = appSeqNo;
	}

	/**
	 * 卡号
	 */
	private String cardNo;

	@Column(name = "CARDNO", nullable = false)
	public String getCardNo() {
		return cardNo;
	}

	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}

	/**
	 * 主账号
	 */
	private BigInteger masterAccNo;

	@Column(name = "MASTERACCNO", nullable = false)
	public BigInteger getMasterAccNo() {
		return masterAccNo;
	}

	public void setMasterAccNo(BigInteger masterAccNo) {
		this.masterAccNo = masterAccNo;
	}

	/**
	 * 钱包账号
	 */
	private BigInteger walletAccNo;

	@Column(name = "WALLETACCNO", nullable = false)
	public BigInteger getWalletAccNo() {
		return walletAccNo;
	}

	public void setWalletAccNo(BigInteger walletAccNo) {
		this.walletAccNo = walletAccNo;
	}

	/**
	 * 钱包子账号
	 */
	private BigInteger walletSubAccNo;

	@Column(name = "WALLETSUBACCNO", nullable = false)
	public BigInteger getWalletSubAccNo() {
		return walletSubAccNo;
	}

	public void setWalletSubAccNo(BigInteger walletSubAccNo) {
		this.walletSubAccNo = walletSubAccNo;
	}

	/**
	 * 应用Id
	 */
	private BigInteger appId;

	@Column(name = "APPID", nullable = false)
	public BigInteger getAppId() {
		return appId;
	}

	public void setAppId(BigInteger appId) {
		this.appId = appId;
	}

	/**
	 * 应用标识ID
	 */
	private String aid;

	@Column(name = "AID", nullable = false)
	public String getAid() {
		return aid;
	}

	public void setAid(String aid) {
		this.aid = aid;
	}

	/**
	 * 密钥索引号
	 */
	private String keyIdx;

	@Column(name = "KEYIDX", nullable = false)
	public String getKeyIdx() {
		return keyIdx;
	}

	public void setKeyIdx(String keyIdx) {
		this.keyIdx = keyIdx;
	}

	/**
	 * 金额
	 */
	private BigInteger amount;

	@Column(name = "AMOUNT", nullable = false)
	public BigInteger getAmount() {
		return amount;
	}

	public void setAmount(BigInteger amount) {
		this.amount = amount;
	}

	/**
	 * 终端机编号
	 */
	private String terminalNo;

	@Column(name = "TERMINALNO", nullable = false)
	public String getTerminalNo() {
		return terminalNo;
	}

	public void setTerminalNo(String terminalNo) {
		this.terminalNo = terminalNo;
	}

	/**
	 * 钱包交易前余额
	 */
	private BigInteger walletBeforeBalance;

	@Column(name = "WALLETBEFOREBALANCE", nullable = false)
	public BigInteger getWalletBeforeBalance() {
		return walletBeforeBalance;
	}

	public void setWalletBeforeBalance(BigInteger walletBeforeBalance) {
		this.walletBeforeBalance = walletBeforeBalance;
	}

	/**
	 * 钱包交易后余额
	 */
	private BigInteger walletAfterBalance;

	@Column(name = "WALLETAFTERBALANCE", nullable = true)
	public BigInteger getWalletAfterBalance() {
		return walletAfterBalance;
	}

	public void setWalletAfterBalance(BigInteger walletAfterBalance) {
		this.walletAfterBalance = walletAfterBalance;
	}

	/**
	 * 联机交易序号
	 */
	private String onlineSeqNo;

	@Column(name = "ONLINESEQNO", nullable = true)
	public String getOnlineSeqNo() {
		return onlineSeqNo;
	}

	public void setOnlineSeqNo(String onlineSeqNo) {
		this.onlineSeqNo = onlineSeqNo;
	}

	/**
	 * 密钥版本号
	 */
	private String dlkVer;

	@Column(name = "DLKVER", nullable = true)
	public String getDlkVer() {
		return dlkVer;
	}

	public void setDlkVer(String dlkVer) {
		this.dlkVer = dlkVer;
	}

	/**
	 * 算法标识
	 */
	private String dlkAlg;

	@Column(name = "DLKALG", nullable = true)
	public String getDlkAlg() {
		return dlkAlg;
	}

	public void setDlkAlg(String dlkAlg) {
		this.dlkAlg = dlkAlg;
	}

	/**
	 * 伪随机数
	 */
	private String pseudoRandom;

	@Column(name = "PSEUDORANDOM", nullable = true)
	public String getPseudoRandom() {
		return pseudoRandom;
	}

	public void setPseudoRandom(String pseudoRandom) {
		this.pseudoRandom = pseudoRandom;
	}

	/**
	 * MAC1
	 */
	private String mac1;

	@Column(name = "MAC1", nullable = true)
	public String getMac1() {
		return mac1;
	}

	public void setMac1(String mac1) {
		this.mac1 = mac1;
	}

	/**
	 * MAC2
	 */
	private String mac2;

	@Column(name = "MAC2", nullable = true)
	public String getMac2() {
		return mac2;
	}

	public void setMac2(String mac2) {
		this.mac2 = mac2;
	}

	/**
	 * TAC
	 */
	private String tac;

	@Column(name = "TAC", nullable = true)
	public String getTac() {
		return tac;
	}

	public void setTac(String tac) {
		this.tac = tac;
	}

	/**
	 * 交易类型
	 */
	private String tranType;

	@Column(name = "TRANTYPE", nullable = true)
	public String getTranType() {
		return tranType;
	}

	public void setTranType(String tranType) {
		this.tranType = tranType;
	}

	/**
	 * 状态
	 */
	private String status;

	@Column(name = "STATUS", nullable = false)
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * 对方响应码
	 */
	private String respCode;

	@Column(name = "RESPCODE", nullable = true)
	public String getRespCode() {
		return respCode;
	}

	public void setRespCode(String respCode) {
		this.respCode = respCode;
	}

	/**
	 * 账户子系统记账流水号
	 */
	private String accSeqNo;

	@Column(name = "ACCSEQNO", nullable = true)
	public String getAccSeqNo() {
		return accSeqNo;
	}

	public void setAccSeqNo(String accSeqNo) {
		this.accSeqNo = accSeqNo;
	}

	/**
	 * 反向记账流水号
	 */
	private String cancelAccSeqNo;

	@Column(name = "CANCELACCSEQNO", nullable = true)
	public String getCancelAccSeqNo() {
		return cancelAccSeqNo;
	}

	public void setCancelAccSeqNo(String cancelAccSeqNo) {
		this.cancelAccSeqNo = cancelAccSeqNo;
	}

	/**
	 * 调账账务日期
	 */
	private Date adjustDate;

	@Column(name = "ADJUSTDATE", nullable = true)
	public Date getAdjustDate() {
		return adjustDate;
	}

	public void setAdjustDate(Date adjustDate) {
		this.adjustDate = adjustDate;
	}

	/**
	 * 手工调整时间
	 */
	private Date adjustTime;

	@Column(name = "ADJUSTTIME", nullable = true)
	public Date getAdjustTime() {
		return adjustTime;
	}

	public void setAdjustTime(Date adjustTime) {
		this.adjustTime = adjustTime;
	}

	/**
	 * 手工调整操作员
	 */
	private BigInteger adjustOperId;

	@Column(name = "ADJUSTOPERID", nullable = true)
	public BigInteger getAdjustOperId() {
		return adjustOperId;
	}

	public void setAdjustOperId(BigInteger adjustOperId) {
		this.adjustOperId = adjustOperId;
	}

	/**
	 * 操作员号
	 */
	private BigInteger operId;

	@Column(name = "OPERID", nullable = false)
	public BigInteger getOperId() {
		return operId;
	}

	public void setOperId(BigInteger operId) {
		this.operId = operId;
	}

	/**
	 * 备注
	 */
	private String remark;

	@Column(name = "REMARK", nullable = true)
	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

}
